<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>山峰数组的顶部</title>
  </head>
  <body>
    <script>
      // 符合下列属性的数组 arr 称为 山峰数组（山脉数组） ：
      // arr.length >= 3
      // 存在 i（0 < i < arr.length - 1）使得：
      // arr[0] < arr[1] < ... arr[i-1] < arr[i]
      // arr[i] > arr[i+1] > ... > arr[arr.length - 1]
      // 给定由整数组成的山峰数组 arr ，返回任何满足 arr[0] < arr[1] < ... arr[i - 1] < arr[i] > arr[i + 1] > ... > arr[arr.length - 1] 的下标 i ，即山峰顶部。

      // 示例 1：
      // 输入：arr = [0,1,0]
      // 输出：1

      // 来源：力扣（LeetCode）
      // 链接：https://leetcode-cn.com/problems/B1IidL
      // 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
      // -------------------------------------------------------

      var peakIndexInMountainArray = function (arr) {
        let maxNum = Math.max(...arr);
        let maxIndex = arr.indexOf(maxNum);
        let arrLen = arr.length;
        let flag = true;
        for (let i = maxIndex - 1; i > 0; i--) {
          if (arr[i] < arr[i - 1]) {
            flag = false;
            break;
          }
        }
        for (let i = maxNum; i < arrLen; i++) {
          if (arr[i] < arr[i + 1]) {
            flag = false;
            break;
          }
        }
        if (flag) {
          return maxIndex;
        }
        return -1;

        // 方法二
        // return arr.indexOf(Math.max(...arr));
        // 不过我觉得这题不是单纯的找最大值，而是需要判断到最大值时数组是递增，过最大值后是递减
        // 傻了傻了，题目说保证是山脉数组 那就可以直接寻找最大值
      };

      console.log(peakIndexInMountainArray([0, 10, 5, 2]));
    </script>
  </body>
</html>
